package com.campus.counseling.service;

import com.campus.counseling.entity.ChatSession;
import com.campus.counseling.model.dto.ChatMessageDTO;
import com.campus.counseling.model.dto.ChatSessionDTO;
import java.util.List;

public interface ChatService {
    /**
     * 保存聊天消息
     */
    void saveMessage(ChatMessageDTO messageDTO);
    
    /**
     * 获取聊天记录
     */
    List<ChatMessageDTO> getChatHistory(Long appointmentId);
    
    /**
     * 标记消息为已读
     */
    void markAsRead(Long userId, Long appointmentId);
    
    /**
     * 获取或创建聊天会话
     */
    ChatSession getOrCreateSession(Long appointmentId);
    
    /**
     * 获取用户的活跃会话列表
     */
    List<ChatSessionDTO> getActiveSessions(Long userId);
    
    /**
     * 结束聊天会话
     * @param appointmentId 预约ID
     */
    void endSession(Long appointmentId);
    
    /**
     * 撤回消息
     */
    void recallMessage(Long messageId, Long userId);
} 